package com.wzcl.app.service;

import com.wzcl.app.model.common.RVO;

import java.util.List;

public interface UserTopUpService {
    /**
     * 用户消费学币
     * @param orderNumber 订单号
     * @param money 订单总价
     * @param commodityIds 用户购买的商品id
     * @return 包含返回剩余学币信息的RVO
     */
    RVO userConsume(String orderNumber, Double money, List<Integer> commodityIds) throws Exception;

    /**
     * 用户充值学币
     * @param productId 充值价格表productId
     * @return 包含返回剩余学币信息的RVO
     */
    RVO userTopUp(String productId);

    /**
     * 根据用户电话获取当前学币信息
     * @return
     */
    RVO findAllByUserPhone();

    /**
     * 申请课程退款
     * @param orderNumber 退款订单号
     * @param returnReason 退款原因
     * @return 返回剩余学币
     */
    RVO applyReturnLearnCoin(String orderNumber, String returnReason);

    /**
     * 课程退款（返回用户学币删除用户课程）
     * @param orderNumber 退款订单号
     * @param result 申请退款结果（1同意退款, 2拒绝退款）
     * @param refusedReason 拒绝退款理由
     * @return 返回剩余学币
     */
     RVO returnLearnCoin(String orderNumber, Integer result, String refusedReason);
}
